import axios from 'axios'

// 创建axios实例
const api = axios.create({
  baseURL: '/api', // 使用相对路径，配合vite代理
  timeout: 600000, // 增加超时时间到10分钟，适应大文件上传
  headers: {
    'Content-Type': 'application/json'
  },
  withCredentials: true, // 允许跨域携带cookie
  // 处理大整数问题：将ID转换为字符串以避免精度丢失
  transformResponse: [function (data) {
    try {
      // 解析JSON字符串，然后递归处理大整数
      const parsedData = JSON.parse(data, (key, value) => {
        // 检查是否为接近或超过JavaScript安全整数范围的数字
        if (typeof value === 'number' && Math.abs(value) > 1e15) {
          return String(value); // 转换为字符串以保持精度
        }
        return value;
      });
      return parsedData;
    } catch (e) {
      return data;
    }
  }]
})

// 请求拦截器
api.interceptors.request.use(
    config => {
      const token = localStorage.getItem('token')
      if (token) {
        config.headers.Authorization = `Bearer ${token}`
      }
      return config
    },
    error => {
      return Promise.reject(error)
    }
)

// 响应拦截器
api.interceptors.response.use(
    response => {
      return response.data
    },
    error => {
      if (error.response?.status === 401) {
        localStorage.removeItem('token')
        window.location.href = '/login'
      }
      return Promise.reject(error)
    }
)
// 获取仪表盘统计数据
export const getDashboardStats = () => {
  return api.get('/dashboard/getDashboardData')
}



// 获取非遗分类统计数据
export const getHeritageCategories = () => {
      return api.get('/dashboard/getfenleiInfo')
}

// 获取活动报名统计数据
export const getActivityRegistrations = (params) => {
      return api.get('/dashboard/getActivityRegistrations', { params })
}
